Cервис Tsmping

  • Tsmping служит для проверки доступности ресурсов сети Интернет.

  • Не редко бывают ситуации, когда Сим-карта зарегистрирована в сети, активна, имеет положительный баланс денежных средств, но, тем не менее, соединение прибора с интернет-ресурсами отсутствует. Причины этого могут не зависеть от настроек роутера, а быть вызваны проблемами на стороне GSM-оператора, например: на Сим-карте не подключена услуга "интернет", не оплачена услуга "роуминг", перебой в сети провайдера и т.п.

  • Tsmping использует стандартную shell-команду:

$ ping <host> -c1 -A -w3 -W3 -q

Она возвращает результат:

root@BITCORD-RTR-2:~# ping 8.8.8.8 -c1 -A -w3 -W3 -q
PING 8.8.8.8 (8.8.8.8): 56 data bytes

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 78.534/78.534/78.534 ms
  • Для того чтобы этой информацией могли пользоваться другие сервисы данные о состоянии пинга сети хранятcя на шине UBUS.

Предоставление программного интерфейса

Использование сервиса осуществляется при помощи методов системной шины UBUS:

Структура файлов сервиса

/usr/lib/lua/tsmping
├── app.lua
├── lock.lua
├── notifier.lua
├── ping.sh
└── timer.lua

Конфигурация и init-скрипты

/etc/config/tsmping
# Файл автозапуска (сервис):
/etc/init.d/tsmping

# Скрипт запуска из командной строки:
/usr/sbin/tsmping
# не забудьте разрешить на выпонение (chmod +x)
Имя файла Предназначение
app.lua Точка входа, основной файл, запускаемый сервисом в автозагрузке устройства
lock.lua Содержит вспомогательные функции, реализующие режим занят/свободен
notifier.lua Информирует на шине UBUS об изменившемся значении пинга сети
ping.sh Shell-скрипт, выполняющий последовательно две функции:
  1. Сама shell-команда вида $ ping
  2. Передача результата на шину UBUS: ubus call tsmping update <результат пинга>
notifier.lua Информирует на шине UBUS об изменившемся значении пинга сети

Взаимодействие с другими сервисами

Tsmping является поставщиком данных для сервиса Applogic, в котором действует "Правило переключения Сим-карты при отсутствии PING сети" [04_rule].

  • Режим "debug":
$ tsmping debug
  • Пример отладочной информации:
root@BITCORD-RTR-2:~# tsmping debug
----------------------------
|  Tsmping debug started   |
----------------------------
9:14:9.55 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395249","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
9:14:13.39 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395253","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
9:14:17.39 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395257","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
^C
-----------------------
Tsmping debug stopped.
-----------------------